Crosshair là các đường thẳng ngang và dọc nhỏ, di chuyển dọc theo con trỏ chuột. Nó khiến việc đọc biểu đồ/đồ thị dễ dàng hơn, đôi khi nó còn được dùng thay cho tooltip.
Crosshair còn được gọi là con trỏ biểu đồ. Nó hữu ích cho việc phân tích chi tiết biểu đồ với số lượng lớn mốc dữ liệu. Ví dụ bên dưới cho bạn một mẫu biểu đồ có Crosshair được tạo bằng code JavaScript. Bạn có cả mã nguồn chi tiết để chỉnh sửa trong trình duyệt hoặc lưu về máy để chạy nội bộ.
<!DOCTYPE HTML>
<html>
<head>
<script>
window.onload = function () {
var chart = new CanvasJS.Chart("chartContainer", {
animationEnabled: true,
title:{
text: "Giá cổ phiếu của BMW - Tháng 8"
},
axisX:{
valueFormatString: "DD MMM",
crosshair: {
enabled: true,
snapToDataPoint: true
}
},
axisY: {
title: "Giá đóng cửa (USD)",
valueFormatString: "$##0.00",
crosshair: {
enabled: true,
snapToDataPoint: true,
labelFormatter: function(e) {
return "$" + CanvasJS.formatNumber(e.value, "##0.00");
}
}
},
data: [{
type: "area",
xValueFormatString: "DD MMM",
yValueFormatString: "$##0.00",
dataPoints: [
{ x: new Date(2016, 07, 01), y: 76.727997 },
{ x: new Date(2016, 07, 02), y: 75.459999 },
{ x: new Date(2016, 07, 03), y: 76.011002 },
{ x: new Date(2016, 07, 04), y: 75.751999 },
{ x: new Date(2016, 07, 05), y: 77.500000 },
{ x: new Date(2016, 07, 08), y: 77.436996 },
{ x: new Date(2016, 07, 09), y: 79.650002 },
{ x: new Date(2016, 07, 10), y: 79.750999 },
{ x: new Date(2016, 07, 11), y: 80.169998 },
{ x: new Date(2016, 07, 12), y: 79.570000 },
{ x: new Date(2016, 07, 15), y: 80.699997 },
{ x: new Date(2016, 07, 16), y: 79.686996 },
{ x: new Date(2016, 07, 17), y: 78.996002 },
{ x: new Date(2016, 07, 18), y: 78.899002 },
{ x: new Date(2016, 07, 19), y: 77.127998 },
{ x: new Date(2016, 07, 22), y: 76.759003 },
{ x: new Date(2016, 07, 23), y: 77.480003 },
{ x: new Date(2016, 07, 24), y: 77.623001 },
{ x: new Date(2016, 07, 25), y: 76.408997 },
{ x: new Date(2016, 07, 26), y: 76.041000 },
{ x: new Date(2016, 07, 29), y: 76.778999 },
{ x: new Date(2016, 07, 30), y: 78.654999 },
{ x: new Date(2016, 07, 31), y: 77.667000 }
]
}]
});
chart.render();
}
</script>
</head>
<body>
<div id="chartContainer" style="height: 300px; width: 100%;"></div>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
</body>
</html>
Nguồn: CanvasJS
Tùy biến biểu đồ
Kích hoạt snapToDataPoint
để tâm ngắm tới mốc dữ liệu gần nhất. Ngoài ra, bạn có thể dùng một số lựa chọn tùy biến phổ biến khác như thickness
- độ dày, color
- màu sắc, lineDashType
- kiểu ngạch ngang.
Source: https://quantrimang.com/hoc/code-javascript-tao-mau-bieu-do-voi-crosshair-194798